/**
 * 平台检测工具函数
 */

// 声明全局变量，避免TS类型错误
declare const __wxjs_environment: string | undefined

/**
 * 检测当前是否为H5环境
 * @returns {boolean} 是否为H5环境
 */
export function isH5Platform(): boolean {
  try {
    const platform = uni.getSystemInfoSync().uniPlatform
    return platform === 'web' || platform === 'h5'
  }
  catch (err) {
    console.error('检测H5平台出错', err)
    return false
  }
}

/**
 * 检测当前是否为微信小程序环境
 * @returns {boolean} 是否为微信小程序环境
 */
export function isWechatMiniProgram(): boolean {
  try {
    if (typeof uni.getSystemInfoSync !== 'function') {
      return false
    }

    const info = uni.getSystemInfoSync()
    return info.platform === 'mp-weixin'
      || info.uniPlatform === 'mp-weixin'
      || (typeof __wxjs_environment !== 'undefined' && __wxjs_environment === 'miniprogram')
  }
  catch (err) {
    console.error('检测微信小程序平台出错', err)
    return false
  }
}

/**
 * 获取当前运行平台信息
 * @returns {string} 平台名称
 */
export function getPlatformName(): string {
  try {
    const info = uni.getSystemInfoSync()
    return info.platform || info.uniPlatform || 'unknown'
  }
  catch (err) {
    console.error('获取平台信息出错', err)
    return 'unknown'
  }
}
